home *** CD-ROM | disk | FTP | other *** search
- RESIDENT COMMAND INTERPRETER
-
- BY
- JOHN CHAPMAN
- 844 S. MADISON ST.
- HINSDALE, ILLINOIS 60521
-
- COMPUSERV ID 70205,1217
-
-
- DISCLAIMER
-
- THIS MODIFICATION IS PROVIDED WITHOUT WARRANTY OF ANY KIND. THE
- AUTHOR ASSUMES NO LIABILITY FOR FAILURE OF THIS CODE TO PERFORM
- IN ANY ENVIRONMENT. THE USER IS COMPLETELY RESPONSIBLE FOR
- DETERMINING THE APPLICABILITY OF THIS MODIFICATION TO A
- PARTICULAR ENVIRONMENT.
-
-
- LIMITATIONS
-
- THIS MODIFICATION CAUSES THE TRANSIENT PORTION OF COMMAND.COM TO
- BE MADE RESIDENT AT SYSTEM IPL. RE-BOOTING THE SYSTEM WITH AN
- UNMODIFIED COMMAND.COM IS THE ONLY WAY TO REMOVE THIS
- MODIFICATION.
-
- THIS MODIFICATION ALTERS THE STARTING SEGMENT [PARAGRAPH] ADDRESS
- AVAILABLE TO PROGRAMS, LOWERING THE AMOUNT OF STORAGE AVAILABLE
- BY 4288 BYTES [FOR PC/DOS 1.1 WITH A NORMAL LOAD SEGMENT ADDRESS
- OF 02C1. THE STARTING SEGMENT OF COMMAND.COM CAN BE FOUND AT
- LOCATION 0000:9E, AND SHOULD DISPLAY [DEBUG] AS
-
- 0000:009E 2C 01
-
- PAGE 1
-
-
- THIS SET OF TWO DEBUG SCRIPTS WILL ALTER THE IBM PERSONAL
- COMPUTER DOS COMMAND INTERPRETER (COMMAND.COM) TO REMAIN ENTIRELY
- RESIDENT, RATHER THAN BE HALF RESIDENT AND HALF TRANSIENT. THE
- WHOLE PURPOSE OF THIS MODIFICATION IS TO SUPPRESS 99% OF THE
- OCCURRANCES OF THE REFRESH OF THE TRANSIENT PORTION. THIS WILL
- REMOVE THE REQUIREMENT TO ALWAYS HAVE A DISK WITH A VALID
- COMMAND.COM IN DRIVE A. THIS CHANGE HAS BEEN ESPECIALLY USEFUL
- WITH MULTIPLE DISKCOPY TYPE ACTIVITIES, AND WITH THOSE
- APPLICATION PACKAGES WHICH USE ALL OF MEMORY, INCLUDING THE TOP
- 4880 BYTES WHERE THE TRANSIENT COMMAND.COM RESIDES.
-
- **NOTE**
-
- WE HAVE EXPERIENCED A LIMITED NUMBER OF CASES WHERE THE
- REFRESHABLE, OR TRANSIENT PORTION OF COMMAND.COM, WHICH NOW
- RESIDES IN LOW MEMORY, HAS BEEN DAMAGED. THIS DAMAGE CAUSES THE
- CHECKSUM CODE TO REFRESH THE TRANSIENT PORTION FROM DISK. IF YOU
- EXPERIENCE REPEATED OCCURANCES OF THIS, SEE PART TWO OF THIS
- MODIFICATION.
-
-
- PAGE 2
- PART ONE
- BEGIN INSTALLATION BY COPYING THE "MODEL" PC/DOS DISKETTE YOU
- WISH TO MODIFY ONTO A FRESH DISKETTE USING DISKCOPY. IF YOU ARE
- PRODUCING A SYSTEM DISKETTE THAT WILL NOT HAVE A COPY OF THE
- DEBUG COMMAND ON IT, YOU MUST HAVE A DISKETTE WITH DEBUG
- AVAILABLE.
-
- PART ONE: DEBUG SCRIPT
- DEBUG COMMAND.COM <CR>
- -D,44D,450 <CR>
- XXXX:44D 04 01 00
- XXXX:450 00
- -D,3ED,3EE <CR>
- XXXX:3ED 01 00
-
- -D,0460,0479 <CR>
- XXXX:0460 46 00 A3 03 01 A1 02 00-8C 1E 05 01 A3 52 04 2D
- -D,10D3,10D7
- XXXX:10D3 8C C8 05 C0 00
- **VERIFY THE ABOVE DISPLAYED BYTES. THE CONTENTS OF THIS DISPLAY
- MUST MATCH EXACTLY. IF ANY DISCREPANCIES ARE DETECTED, DO NOT
- INSTALL ANY OF THE PATCH WHICH FOLLOWS.
-
- -E,3ED,00 <CR>
- -E,44F,54,00 <CR>
- -E,103,61,01 <CR>
- -E,45F,01,06,4F,04,01,06,03,01 <CR>
- -E,467,8C,1E,05,01,A1,02,00 <CR>
- -E,46E,A3,52,04,90,90,90,90,90 <CR>
- -E,479,90,90,90 <CR>
- -E,658,A1,02,00,2B,06,9F,0F <CR>
- -E,65F,BA,10,00,F7,E2,90,71,03 <CR>
- -E,10D3,A1,02,00,2D,02,00 <CR>
-
- **THE ABOVE ENTERS THE FIRST SECTION OF THE PATCH.
- PAGE 3
- PART ONE (CONTINUED)
-
- NEXT, WE WILL DISPLAY THE MODIFIED CODE, TO VERIFY THAT THE PATCH
- WAS CORRECTLY INSTALLED:
-
- -U,045D,047B <CR>
- MOV AX,CS
- ADD [044F],AX
- ADD [0103],AX
- MOV [0105],DS
- MOV AX,[0002]
- MOV [0452],AX
- NOP
- NOP
- NOP
- NOP
- NOP
- CALL 0294
- NOP
- NOP
- NOP
-
- -U,0656,0665 <CR>
- INT 21
- MOV AX,[0002]
- SUB AX,[0F9F]
- MOV DX,0010
- MUL AX,DX
- NOP
- JNO 066A
- BE SURE THAT THE ABOVE MATCHES THE
- DISPLAY PRODUCED BY "UNASSEMBLE" ON YOUR MACHINE.
- -W <CR>
- WRITING 135F BYTES
- -Q <CR>
- A> ***WHEN THE "A" PROMPT APPEARS YOU ARE READY TO REBOOT***
-
- YOU SHOULD USE THIS MODIFICATION WITH ONLY THIS PORTION INSTALLED
- UNLESS YOU ENCOUNTER ANY OF THE PROBLEMS DESCRIBED IN THE SECOND
- SECTION.
- PLEASE DO NOT INSTALL PART TWO OF THIS MODIFICATION UNLESS YOU
- EXPERIENCE A PROBLEM USING PART ONE BY ITSELF.
-
-
- PAGE 4
- PART TWO: REFRESH SUPPRESSION
-
- WE HAVE EXPERIENCED A LIMITED NUMBER OF CASES WHERE THE 'REFRESH'
- OF THE TRANSIENT PORTION OF COMMAND.COM, WHICH NOW RESIDES IN LOW
- MEMORY, HAS BEEN DAMAGED. THIS DAMAGE CAUSES THE CHECKSUM CODE
- TO REFRESH THE TRANSIENT PORTION FROM DISK.
- THE CHANGES PROVIDED IN PART TWO ALLOW SPECIFIC PROTECTION
- AGAINST THE DAMAGE POSSIBLE IN AN ENVIRONMENT WHERE A PROGRAM[S]
- HAS BEEN WRITTEN WITH SPECIFIC ARCHITECTURE DEPENDENCIES.
-
- IF, AND ONLY IF, YOU RECEIVE THE "INSERT DOS DISK IN DRIVE A AND
- STRIKE ANY KEY WHEN READY" MESSAGE, OR SEE THAT AN UNSOLICITED
- I/O
- HAS OCCURRED ON THE DEFAULT DRIVE DURING PROGRAM EXECUTION..
-
- AND ONE OF THESE OCCURANCES IS FOLLOWED BY A SYSTEM "HANG"
-
- IF IT BECOMES NECESSARY TO APPLY PART TWO, PLEASE DOCUMENT TO THE
- AUTHOR THE CIRCUMSTANCES THAT CAUSED THE HANG, INCLUDING, IF
- POSSIBLE, THE [SOURCE] PROGRAM THAT WAS EXECUTING. IF THE
- SOFTWARE YOU WERE USING IS PROPRIETARY, PLEASE INDICATE:
- A) THE PACKAGE NAME, VENDOR, ETC.
- B) THE MEMORY SIZE ON YOUR MACHINE, AND
- C) THE LANGUAGE USED TO PRODUCE THE PROGRAM WHICH CAUSED THE
- MODIFIED COMMAND INTERPRETER TO "HANG".
-
- **PLEASE REPORT BUGS** TO THE ADDRESS/ID SHOWN ON THE FIRST
- PAGE.
-
- PAGE 5
- PART TWO: DEBUG SCRIPT
-
- DEBUG COMMAND.COM <CR>
- -D,111B,111E <CR>
- XXXX:111B 3B D1 77 51
- -D,1134,1137 <CR>
- XXXX:1136 3B D1 77 38
-
- AS BEFORE, BE SURE THAT THE DISPLAYS ABOVE MATCH YOUR SYSTEM, AND
- DO NOT ENTER THE PATCH BELOW UNLESS EACH BYTE VERIFIES.
-
- -E,023A,90,90 <CR>
- -E,0242,90,90 <CR>
- -E,0246,90,90 <CR>
- -E,111D,90,90 <CR>
- -E,1136,90,90 <CR>
-
- -W <CR>
- WRITING 135F BYTES
- -Q <CR>
- A> *** REBOOT AT THIS POINT ***
-
- 1136,90,90 <CR>
-
- -W <CR>
- WRITING 135F BYTES
- -Q <CR>
-